Dropout
Motivation
一个好的模型需要对输入数据的扰动鲁棒
- 使用噪音的数据等价于
Tikhonov
正则 - 丢弃法:在层之间加入噪音
无偏差的加入噪音
- 对
加入噪音得到 , 希望期望不变
- 丢弃法对每个元素进行如下扰动
使用丢弃法
- 通常将丢弃法作用在隐藏全连接层的输出上
[!flex]
MLP
Dropout
总结
- dropout 将一些输出项随机置0来空值模型复杂度
- 常作用在多层感知机的隐藏层输出上
- 丢弃概率是空值模型复杂度的超参数
Dropout Code
python
import torch
def dropout_layer(X,dropout):
assert 0<= dropout <=1 #概率值在0-1之间
if dropout == 1:
return torch.zeros_like(X)
if dropout == 0:
return X
mask = (torch.randn(X.shape) > dropout).float
return mask * X / (1.0-dropout)